/*
    Space Simulation - Simulate the solar system
    Copyright (C) 2010  Guillaume Andrieu and Sylvain Martin

    This file is part of Space Simulation.

    Space Simulation is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Space Simulation is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Space Simulation.  If not, see <http://www.gnu.org/licenses/>.
 */

/*
 *Particule.c est le code source C qui regroupe les fonctions MakeParticule et PartDistance
 *
 *MakeParticule : Cette fonction est la fonction de creation des particules. Elle prends en parametre un
 *		  certain nombre de données, position, vitesse, masse, rayon. Elle retourne la particule
 *		  crée (sa structure remplie des données passées en parametres)
 *
 *PartDistance  : Cette fonction calcule la distance entre deux coordonnées dans l'espace.
 *
 *Ces fonctions on respectivement besoin d'apeller Vector3D.h (où les fonctions de calculs géometriques dans
 *l'espace sont définies) et Particule.h (où la structure de la particules est définie).
 */

#include <stdlib.h>
#include <string.h>

#include "Vector3D.h"
#include "Particule.h"

Particule MakeParticule(char * des, Vector3D pos, Vector3D speed, double mass, double radius)
{
  Particule New_part;
  New_part.designation = malloc((strlen(des) + 1) * sizeof(char));
  strcpy(New_part.designation, des);
  New_part.position = pos;
  New_part.speed = speed;
  New_part.mass = mass;
  New_part.radius = radius;
  return New_part;
}

double PartDistance(Particule par1, Particule par2)
{
  return VectorNorm ( VectorSubstract(par1.position, par2.position) );
}
